!===================Programa que calcula v(t) sem atrito================

PROGRAM exerA

!=======================================================================

IMPLICIT NONE

!========================Declaração de variáveis========================

      INTEGER :: I, n_iter
      REAL(8) :: deltat, vel, b4vel, v0, totalt, exata
      !Define como parâmetro a massa do corredor + bicicleta
      !e a potência fornecida pelo corredor
      REAL(8), PARAMETER :: m = 70.0d0, P = 400.0d0

!===============Abertura de arquivos e leitura de dados=================

      WRITE(*,*) "Entre com a velocidade inicial em m/s"
      READ(*,*) v0
      WRITE(*,*) "Entre com o intervalo de tempo de cada iteração em s"
      READ(*,*) deltat
      WRITE(*,*) "Entre com o tempo total do trajeto em s"
      READ(*,*) totalt

      OPEN(UNIT=10, FILE="vel1_out.dat", STATUS="unknown")
      OPEN(UNIT=20, FILE="vel_exata.dat", STATUS="unknown")

!==============Calcula as velocidades e imprime no arquivo==============

      vel = 0.0d0
      b4vel = v0
      !Calcula o número total de iterações (arredonda para baixo)
      n_iter = totalt/deltat
      DO I=0,n_iter
            !Calcula os pontos da curva exata
            exata = SQRT(v0**2+(2.0d0*P*I*deltat)/m)
            WRITE(20,*) I*deltat, exata
            !Escreve no arquivo o tempo e a velocidade
            WRITE(10,*) I*deltat, b4vel
            vel = b4vel + ((P*deltat)/(m*b4vel))
            b4vel = vel
      END DO

!=======================================================================

END PROGRAM exerA

!=======================================================================
